登录 白背景

375. 猜数字大小 II

没太理解原理,默写的题解

https://leetcode-cn.com/problems/guess-number-higher-or-lower-ii/

  • 提交时间:2021-11-12 15:40:33
  • 执行用时:12 ms, 在所有 Go 提交中击败了85.19%的用户
  • 内存消耗:4.8 MB, 在所有 Go 提交中击败了53.70%的用户
  • 通过测试用例:27 / 27
func getMoneyAmount(n int) (ans int) {
    f := make([][]int, n+1)
    for i := range f {
        f[i] = make([]int, n+1)
    }
    for leftPos := n - 1; leftPos > 0; leftPos-- {
        for rightPos := leftPos + 1; rightPos <= n; rightPos++ {
            ans = math.MaxInt32
            for k := leftPos; k < rightPos; k++ {
                ret := k + max(f[leftPos][k-1], f[k+1][rightPos])
                if ret < ans {
                    ans = ret
                }
            }
            f[leftPos][rightPos] = ans
        }
    }
    return
}

func max(x, y int) int {
    if x > y {
        return x
    }
    return y
}